package com.sikaryofficial.backend.domain.dto.resp.collection;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sikaryofficial.backend.domain.dto.resp.UserActionListResp;
import com.sikaryofficial.common.core.annotation.CustomerDateDeserializer;
import com.sikaryofficial.common.core.annotation.LocalDateTimeFormat;
import com.sikaryofficial.system.api.model.att.AttachmentResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 用户行为对象 user_action_t
 *
 * @author qinjinyuan
 * @date 2023-11-09
 */
@Getter
@Setter
@ToString
@ApiModel(value = "用户行为文章出参", description = "用户行为文章出参")
public class UserActionArticleResp extends UserActionListResp {
    /**
     * 文章ID
     */
    @ApiModelProperty(value = "文章ID")
    private Long articleId;
    /**
     * 文章类型：0-文章 1-topic
     */
    @ApiModelProperty(value = "文章类型：0-文章 1-topic,默认为0")
    private Integer articleType;
    /**
     * 审核状态:0-草稿,1-审核中(点击发布),2-审核通过(发布成功),3-审核不通过
     */
    @ApiModelProperty(value = "审核状态:0-草稿,1-审核中(点击发布),2-审核通过(发布成功),3-审核不通过，默认为0")
    private Integer auditStatus;
    /**
     * 标题
     */
    @ApiModelProperty(value = "标题")
    private String headline;

    /**
     * 编辑方式：0-在线编辑 1-导入
     */
    @ApiModelProperty(value = "编辑方式：0-在线编辑 1-导入，默认为0")
    private Integer editType;

    /**
     * 内容类型:0-动态 1-长文
     */
    @ApiModelProperty(value = "内容类型:0-动态 1-长文 2-短视频，默认为0")
    private Integer contentType;

    /** 父级分类ID */
    @ApiModelProperty(value = "父级分类ID，默认是1")
    private Long parentCategory;

    /**
     * 文件来源：1-爬虫 2-后台管理端 3-用户
     */
    @ApiModelProperty(value = "文件来源：1-爬虫 2-后台管理端 3-用户，默认为1")
    private Integer source;

    /**
     * 文章站点
     */
    @ApiModelProperty(value = "文章站点:vaping360")
    private String articleSite;
    /**
     * 封面图片
     */
    @ApiModelProperty(value = "封面图片")
    private String coverUrl;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人ID")
    private Long createdBy;

    @ApiModelProperty(value = "创建人名称")
    private String createdName;

    @ApiModelProperty(value = "昵称")
    private String nickName;

    /**
     * 创建时间
     */
    @LocalDateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonDeserialize(using = CustomerDateDeserializer.class)
    @ApiModelProperty(value = "创建时间")
    private Date createdTime;

    /**
     * 发布时间
     */
    @LocalDateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonDeserialize(using = CustomerDateDeserializer.class)
    @ApiModelProperty(value = "发布时间")
    private Date publishTime;

    @ApiModelProperty(value = "作者头像")
    private String avatar;

    private Integer tenantId;

    @ApiModelProperty(value = "附件列表")
    private List<AttachmentResp> attachmentList;

    @ApiModelProperty(value = "Get Follow(粉丝数量)", example = "123")
    private Long fansCount;
    /**
     * 是否关注
     */
    @ApiModelProperty(value = "是否关注,true-关注 false-未关注")
    private boolean hasFollow;
    /**
     * 点赞统计
     */
    @ApiModelProperty(value = "点赞统计", example = "123")
    private int likesCount;
    /**
     * 收藏统计
     */
    @ApiModelProperty(value = "收藏统计", example = "123")
    private int collectionCount;
    /**
     * 评价统计
     */
    @ApiModelProperty(value = "评价统计", example = "123")
    private int evaluationCount;
    /**
     * 是否有我的点赞
     */
    @ApiModelProperty(value = "是否有我的点赞")
    private boolean hasOwnerLikes;
    /**
     * 是否有我的收藏
     */
    @ApiModelProperty(value = "是否有我的收藏")
    private boolean hasOwnerCollection;
}
